package com.example.clock_demo.dto;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 月度考勤报表导出DTO
 */
@Data
public class MonthlyAttendanceExportDTO {
    
    @ExcelProperty(value = {"", "序号"})
    @ColumnWidth(6)
    private Integer sequenceNumber;
    
    @ExcelProperty(value = {"", "姓名"})
    @ColumnWidth(10)
    private String employeeName;
    
    @ExcelProperty(value = {"", "工号"})
    @ColumnWidth(12)
    private String employeeNumber;
    
    @ExcelProperty(value = {"", "班组名称"})
    @ColumnWidth(12)
    private String teamName;
    
    // 日期列（动态生成）
    @ExcelIgnore
    private List<String> dailyData; // 存储每日的4行数据：班次、排班时长、上班时长、是否正常
    
    @ExcelProperty(value = {"", "白班天数"})
    @ColumnWidth(8)
    private Integer whiteShiftDays;
    
    @ExcelProperty(value = {"", "夜班天数"})
    @ColumnWidth(8)
    private Integer nightShiftDays;
    
    @ExcelProperty(value = {"", "排班工时"})
    @ColumnWidth(10)
    private BigDecimal totalScheduledHours;
    
    @ExcelProperty(value = {"", "出勤工时"})
    @ColumnWidth(10)
    private BigDecimal totalActualWorkHours;
    
    @ExcelProperty(value = {"", "排班天数"})
    @ColumnWidth(8)
    private Integer totalScheduledDays;
    
    @ExcelProperty(value = {"", "出勤天数"})
    @ColumnWidth(8)
    private Integer actualAttendanceDays;
    
    @ExcelProperty(value = {"", "缺勤天数"})
    @ColumnWidth(8)
    private Integer absentDays;
    
    @ExcelProperty(value = {"", "迟到早退次数"})
    @ColumnWidth(12)
    private Integer lateEarlyLeaveCount;
    
    @ExcelProperty(value = {"", "出勤工时比率"})
    @ColumnWidth(12)
    private String attendanceHoursRatio;
    
    @ExcelProperty(value = {"", "出勤天数比率"})
    @ColumnWidth(12)
    private String attendanceDaysRatio;
}
